package top.lww0511.extra.annotation;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 多对多
 *
 * @author lww
 */
@Inherited
@Documented
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface Many2Many {

    /**
     * 自己在自己表中列名
     */
    String self() default "id";

    /**
     * 自己在中间表的列名
     */
    String leftMid();

    /**
     * 另一个多方在中间表中的列名
     */
    String rightMid();

    /**
     * 另一个多方在自己表中的列名
     */
    String right() default "id";

    /**
     * 中间表 mapper
     */
    Class<? extends BaseMapper> midMapper();

    /**
     * 另一个多方的 mapper
     */
    Class<? extends BaseMapper> rightMapper();

}
